Computer Science

Faculty List
  • R. Abou Assi, M.Sc., Ph.D. (Beirut), CLTA Assistant Professor, Teaching Stream
  • A. Anderson, B.Eng. (McGill), M.Sc., Ph.D. (Stanford), Associate Professor
  • A. Bretscher, B.Sc., M.Sc. (Queen's), Ph.D. (Toronto), Associate Professor, Teaching Stream
  • N. Cheng, B.Sc. (Toronto), Associate Professor, Teaching Stream
  • W.H. Enright, B.Sc. (U.B.C.), M.Sc., Ph.D. (Toronto), Professor Emeritus
  • F. Estrada, B.Eng. (ITESM, Mex.), M.Sc., Ph.D. (Toronto), Professor, Teaching Stream
  • D.J. Fleet, B.Sc. (Queen's), M.Sc., Ph.D. (Toronto), Professor
  • P. Gawde, B.Sc. (Mumbai), M.Sc., Ph.D. (Kent), CLTA Assistant Professor, Teaching Stream
  • V. Hadzilacos, B.S.E. (Princeton), Ph.D. (Harvard), Professor
  • B. Harrington, Hon. B.Sc. (Toronto), M.Sc., D.Phil. (Oxford), Professor, Teaching Stream
  • G. Hirst, B.A., B.Sc. (Monash), M.Sc. (A.N.U., U.B.C.), Ph.D. (Brown), Professor Emeritus
  • I. Huang, B.Eng. (Beijing), M.ASc., M.Sc. (Regina), Ph.D. (Waterloo), Assistant Professor, Teaching Stream
  • N. Koudas, B.Sc. (Patras), M.Sc. (Maryland), Ph.D. (Toronto), Professor
  • M. Molloy, B.Math, M.Math (Waterloo), Ph.D. (Carnegie Mellon), Professor
  • R. Pancer, B.Sc., M.Sc., Ph.D. (Toronto), Associate Professor, Teaching Stream
  • G. Pekhimenko, B.Sc. (Taurida), M.Sc., (Toronto), Ph.D. (Carnegie Mellon), Associate Professor
  • M. Ponce, B.Sc., M.Sc. (UdelaR, Uruguay), Ph.D. (RIT), Assistant Professor, Teaching Stream
  • A. Rosselet, B.Sc. (NCSU), M.Sc., Ph.D. (Toronto), Associate Professor, Teaching Stream Emeritus
  • T. Sans, B.Sc. (Paul Sabatier), M.Sc. (Supaero), Ph.D. (Telecom-Bretagne), Associate Professor, Teaching Stream
  • B. Schroeder, M.Sc. (Saarbrucken), Ph.D. (Carnegie Mellon), Professor
  • A. Tafliovich, Hon. B.Sc., M.Sc., Ph.D. (Toronto), Professor, Teaching Stream
  • R. Tell, B.A. (Tel Aviv), B.Sc. (OpenU), M.Sc., Ph.D. (Weizmann), Assistant Professor
  • N. Vijaykumar, B.E. (PES), M.Sc., Ph.D. (Carnegie Mellon), Assistant Professor
  • Q. Zhang, B.E. (Harbin), Ph.D. (Pennsylvania), Assistant Professor

Associate Chair: A. Tafliovich (416-287-7410) anya@cs.utoronto.ca

Computer Science is the study of the use of computers to process information. The form of this information may vary widely, from the business person's records or the scientist's experimental results to the linguist's texts. One of the fundamental concepts in Computer Science is the algorithm - a list of instructions that specify the steps required to solve a problem. Computer Science is concerned with producing correct, efficient, and maintainable algorithms for a wide variety of applications. Closely related is the development of tools to foster these goals: programming languages for expressing algorithms; operating systems to manage the resources of a computer; and various mathematical and statistical techniques to study the correctness and efficiency of algorithms.

Theoretical computer science is concerned with the inherent difficulty of problems that can make them intractable by computers. Numerical analysis, data management systems, computer graphics, and artificial intelligence are concerned with the applications of computers to specific problem areas.

Limited Enrolment

Because of pressures of demand for places, it has been necessary to place enrolment limits on most CSC courses and on admission to the Specialist, Major, and Minor programs. Information on how to apply for admission to a program is given below.

Note: Admission to CSC Courses
CSC courses are open to all students who meet the pre-requisites. Non-CSC program students will be permitted to take CSC courses as required for their programs. Otherwise non-CSC program students who wish to take B-, C-, or D-level courses must meet additional cumulative grade point average (CGPA) requirements:

  • A student who is not in a CSC program and does not have a CGPA of at least 3.5 may not take any B-level CSC course, with the exception of CSCB20H3.
  • A student who is not in a CSC program and does not have a CGPA of at least 3.5 may not take any C- or D-level CSC course.
  • When a B-, C-, or D-level CSC course approaches its capacity, CSC program students will be given preference for further enrollment over non-CSC program students.
  • Students admitted to the Major or Specialist programs in Computer Science at any point after the first year will be subject to retroactive program tuition fees.

Program Combination Restrictions in Computer Science

The Specialist/Specialist Co-op, Major/Major Co-op, and Minor programs in Computer Science cannot be combined.

Experiential Learning and Outreach

For a community-based experiential learning opportunity in your academic field of interest, consider the course CTLB03H3, which can be found in the Teaching and Learning section of the Calendar.

Computer Science Programs

SPECIALIST PROGRAM IN COMPUTER SCIENCE - Comprehensive Stream (SCIENCE) - SCSPE0510

Supervisor of Studies: R. Pancer (416-287-7679) Email: pancer@utsc.utoronto.ca

Program Objectives
This program provides a working knowledge of the foundations of computer science: modern computer software and hardware, theoretical aspects of computer science, and relevant areas of mathematics and statistics. It also imparts an appreciation of the discipline's transformative impact on science and society. The program prepares students for further study and for careers in the computing industry. It comprises four streams with different emphases:

The Comprehensive Stream provides a broad and balanced exposure to the discipline. It is the stream best-suited for students planning to pursue graduate study in computer science, but it is also suitable for other career paths.

The structure of the program requirements allows one to easily switch streams until relatively late in the program. Consequently, these streams should not be viewed as rigidly separated channels feeding students to different career paths, but as a flexible structure that provides computer science students guidance in their course selection based on their broad (but possibly fluid) interests.

Enrolment Requirements

Enrolment in the Specialist in Computer Science (all streams) is limited. Students may apply to enter the program after completing 4.0 credits, and must meet the requirements described below:

1. Students already admitted to the UTSC Year 1 Computer Science admissions category:

Required Courses:

Students must have passed the following CSC and MAT courses: CSCA08H3, CSCA48H3, CSCA67H3, MATA22H3, MATA31H3, and MATA37H3.

Required Grades:

Students that meet all of the following requirements will be admitted to a CS Specialist POSt*:
a. A cumulative grade point average (CGPA) of at least 2.5 over the following courses: CSCA48H3, CSCA67H3, MATA22H3, and MATA37H3;
b. A final grade of at least B in CSCA48H3; and
c. A final grade of at least C- in two of the following: CSCA67H3, MATA22H3, and MATA37H3.

*Students must select one stream of the CS Specialist as follows:
a. Students can select either the Comprehensive stream or the Software Engineering stream.
b. A limited number of students will be admitted to the Information Systems stream, depending on available space.
c. Admission to the Entrepreneurship stream will be based in part on submission of a Supplementary Application Form (SAF) available on the Department of Computer and Mathematical Sciences website. Applications for admission will be accepted once per academic year, during the April-May POSt admissions round.

2. Students admitted to other UTSC Year 1 admissions categories:

Students that have been admitted to either the UTSC Year 1 Math or UTSC Year 1 Statistics admissions categories are eligible to apply for the Computer Science Specialist POSt. Admission will be based on academic performance in the required A-level courses, identified above. The admission requirements change each year depending on available spaces and the pool of eligible applicants, and students are cautioned that there is no guarantee of admission; as such, students are strongly advised to plan to enroll in backup programs.

Students that have not been admitted to a UTSC Year 1 CMS admissions category (Computer Science, Mathematics, or Statistics) must achieve a final grade of at least A- in both MATA31H3 and CSCA67H3 the first time they complete these courses in order to be eligible to apply for a CS Specialist POSt. This is a strict requirement. Admission will be based on academic performance in the required A-level courses, identified above. The admission requirements change each year depending on available spaces and the pool of eligible applicants, and students are cautioned that there is no guarantee of admission; as such, students are strongly advised to plan to enroll in backup programs.

For more information about the admission requirements, please visit the following CMS webpage.

To remain in the program, a student must maintain a CGPA of 2.0 or higher throughout the program.

Note: Students admitted to the program after second or third year will be required to pay retroactive deregulated program fees.

Program Requirements
The program requirements comprise a core of 18 courses (9.0 credits), common to all streams and additional requirements which depend on the stream, for a total of 27 courses (13.5 credits) for the Comprehensive, Software Engineering, and Entrepreneurship streams, and 29 courses (14.5 credits) for the Information Systems stream.

Note: Many Computer Science courses are offered both at U of T Scarborough and at the St. George campus. When a course is offered at both campuses in a given session, U of T Scarborough students are expected to take that course at U of T Scarborough. The Department of Computer Science at the St. George campus cannot guarantee space for U of T Scarborough students in their courses, especially those offered at both campuses.

Core (9.0 credits)

1. Writing Requirement (0.5 credit)*
0.5 credit from the following: ANTA01H3, ANTA02H3, CLAA06H3, (CTLA19H3), CTLA01H3, ENGA10H3, ENGA11H3, ENGB06H3, ENGB07H3, ENGB08H3, ENGB09H3, ENGB17H3, ENGB19H3, ENGB50H3, (ENGB51H3), GGRA02H3, GGRA03H3, GGRB05H3, (GGRB06H3), (HISA01H3), (HLTA01H3), (ACMA01H3), (HUMA01H3), (HUMA11H3), (HUMA17H3), (LGGA99H3), LINA01H3, PHLA10H3, PHLA11H3, WSTA01H3.
*Note: It is recommended that this requirement be satisfied by the end of the second year.

2. A-level courses (3.0 credits)
CSCA08H3 Introduction to Computer Science I
CSCA48H3 Introduction to Computer Science II
CSCA67H3 Discrete Mathematics
MATA22H3 Linear Algebra I for Mathematical Sciences
MATA31H3 Calculus I for Mathematical Sciences
MATA37H3 Calculus II for Mathematical Sciences

3. B-level courses (3.5 credits)
CSCB07H3 Software Design
CSCB09H3 Software Tools and Systems Programming
CSCB36H3 Introduction to the Theory of Computation
CSCB58H3 Computer Organization
CSCB63H3 Design and Analysis of Data Structures
MATB24H3 Linear Algebra II
STAB52H3 Introduction to Probability

4. C-level courses (1.5 credits)
CSCC43H3 Introduction to Databases
CSCC69H3 Operating Systems
CSCC73H3 Algorithm Design and Analysis

5. D-level courses (0.5 credit)
CSCD03H3 Social Impact of Information Technology


Comprehensive Stream
This stream requires a total of 27 courses (13.5 credits). In addition to the core requirements 1-5 common to all streams, 9 other distinct courses (4.5 credits) must be chosen to satisfy all of the following requirements:

6. Additional required courses (2.5 credits)
CSCC24H3 Principles of Programming Languages
CSCC37H3 Introduction to Numerical Algorithms for Computational Mathematics
CSCC63H3 Computability and Computational Complexity
CSCD37H3 Analysis of Numerical Algorithms for Computational Mathematics
MATB41H3 Techniques of the Calculus of Several Variables I

7. Electives from courses on computer systems and applications (1.0 credit)
Choose from:
CSCC01H3 Introduction to Software Engineering
CSCC09H3 Programming on the Web
CSCC10H3 Human-Computer Interaction
CSCC11H3 Introduction to Machine Learning and Data Mining
CSCC46H3 Social and Information Networks
CSCC85H3 Fundamentals of Robotics and Automated Systems
CSCD01H3 Engineering Large Software Systems
CSCD18H3 Computer Graphics
CSCD25H3 Advanced Data Science
CSCD27H3 Computer and Network Security
CSCD43H3 Database System Technology
CSCD58H3 Computer Networks
CSCD70H3 Compiler Optimization
CSCD84H3 Artificial Intelligence
CSC320H1 Introduction to Visual Computing
CSC401H1 Natural Language Computing
CSC413H1 Neural Networks and Deep Learning
CSC469H1 Operating Systems Design and Implementation
CSC485H1 Computational Linguistics
CSC488H1 Compilers and Interpreters

8. Electives from courses related to the theory of computing (0.5 credit)
Choose from:
MATC09H3 Introduction to Mathematical Logic
MATC32H3 Graph Theory and Algorithms for its Applications
MATC44H3 Introduction to Combinatorics
MATD16H3 Coding Theory and Cryptography
CSC438H Computability and Logic
CSC448H Formal Languages and Automata
CSC465H Formal Methods in Software Design

9. CSC, MAT, or STA elective (0.5 credit)
Any C- or D-level CSC, MAT, or STA course, excluding MATC82H3, MATC90H3, STAC32H3, STAC53H3 and STAD29H3.

SPECIALIST (CO-OPERATIVE) PROGRAM IN COMPUTER SCIENCE - Comprehensive Stream (SCIENCE) - SCSPE0510C

Academic Program Advisor: S. Calanza susan.calanza@utoronto.ca
Co-op Program Coordinator: coopsuccess.utsc@utoronto.ca

This program provides a working knowledge of the foundations of computer science: modern computer software and hardware, theoretical aspects of computer science, and relevant areas of mathematics and statistics. It also imparts an appreciation of the discipline's transformative impact on science and society. The program prepares students for further study and for careers in the computing industry. It comprises four streams with different emphases:

The Comprehensive Stream provides a broad and balanced exposure to the discipline. It is the stream best-suited for students planning to pursue graduate study in computer science, but it is also suitable for other career paths.

The structure of the program requirements allows one to easily switch streams until relatively late in the program. Consequently, these streams should not be viewed as rigidly separated channels feeding students to different career paths, but as a flexible structure that provides computer science students guidance in their course selection based on their broad (but possibly fluid) interests.

In addition to their academic course requirements, students must successfully complete the additive Arts & Science Co-op Work Term and Course requirements.

Enrolment Requirements

Enrolment in the Specialist (Co-operative) program in Computer Science (all streams) is limited. Students must have completed the required A-level CSC and MAT courses, and achieved the required grades, described in the Enrolment Requirements for the Specialist in Computer Science.

Note: Co-op students who started in Co-op prior to Fall 2025 are allowed to follow the calendar requirements in effect at that time.

Prospective Co-op Students:
Students who have not yet been admitted into a Co-op Degree POSt must submit a co-op program request through ACORN and ensure they meet the minimum enrolment requirements as noted above. These qualifications may include a higher CGPA specific to the co-op program.

Deadlines follow the Limited Enrolment Program Application Deadlines set by the Office of the Registrar each year. Failure to submit the program request on ACORN will result in the student's application/request not being considered.

Please note that meeting the minimum qualifications does not guarantee enrolment in the Co-op Program of Study or Degree POSt. The required CGPA may be higher than the minimum threshold and is dependent on the applicant pool and number of spaces available.

Minimum Qualifications for Prospective Co-op Students:
Credits: Minimum of 4.0 credits to a maximum of 10.0 credits
Required Courses: As noted in the Enrolment Requirements above
Cumulative GPA: 2.75 across all attempted courses.

Current Co-op Students:
Students admitted to a Co-op Degree POSt must request a Co-op Program of Study through ACORN.

*Students must select one stream of the CS Specialist Co-op. Admission to the Entrepreneurship stream also requires the submission of a Supplementary Application Form available on the Department of Computer and Mathematical Sciences webpage.

Minimum Qualifications for Current Co-op Students:
Credits: 4.0 credits
Required Courses: Program-specific courses described in the Enrolment Requirements above
Cumulative GPA: 2.50 across all attempted courses.

Academic Program Requirements
Students must complete the program requirements as described in the Specialist Program in Computer Science. To be eligible for their first work term, students must be enrolled in the program, have completed at least 7.0 credits, including all first year required courses (CSCA08H3, CSCA48H3, CSCA67H3, MATA22H3, MATA31H3, MATA37H3), and maintain a CGPA of 2.50 or higher. In addition to their academic courses, students must also complete the required Co-op preparation courses.

Planning your Co-op Work Terms & Academics:
Enrollment in a Co-op program requires careful planning of both academics and work terms. Students should consult their Co-op Program Coordinator and Academic Program Advisors, as well as review the standard co-op sequences and course maps available on the Arts & Science Co-op website and Arts and Science Co-op Compass for guidance.

Co-op Work Term Requirements:
Students must successfully complete three Co-op work terms, totaling 12 months in duration, which can be fulfilled through the following options:

  • Three 4-month work terms, or
  • One 4-month work term and one 8-month work term, or
  • One 12-month work term.

Students must be available for work terms during the Fall, Winter, and Summer semesters, and are required to complete at least one of their work terms in either the Fall or Winter semester. As a result, students must also take courses during the Summer semesters.

Co-op Course Requirements:
Co-op students complete the following Co-op-specific courses as part of their degree

Co-op Preparation Courses (Completed in First Year):

Work Term Search Courses:

  • COPB57H3/​(COPB52H3) - Completed in the semester prior to the first work term
  • COPC98H3 - Taken in the semester prior to the second work term
  • COPC99H3 - Taken in the semester prior to the third work term

Co-op Work Term Courses:

Additional Work Terms & Courses:
After successful completion of three required work terms, students interested in additional work terms will require approval from the Arts & Science Co-op Office. Additional course work will also be required.

Note: Co-op courses are taken alongside a full course load and are recorded on transcripts as Credit/No Credit (CR/NCR). These courses have no credit weight and are considered additional credits beyond the 20.0 required degree credits. No additional course fee is charged, as registration is included in the Co-op Program fee.

For information on course codes, fees, status in Co-op programs, and certification of completion of Co-op programs, see the Co-operative Programs section and the Arts and Science Co-op section in the UTSC Calendar.

SPECIALIST PROGRAM IN COMPUTER SCIENCE - Entrepreneurship Stream (SCIENCE) - SCSPE0805

Supervisor of Studies: R. Pancer (416-287-7679) Email: pancer@utsc.utoronto.ca

Program Objectives
This program provides a working knowledge of the foundations of computer science: modern computer software and hardware, theoretical aspects of computer science, and relevant areas of mathematics and statistics. It also imparts an appreciation of the discipline's transformative impact on science and society. The program prepares students for further study and for careers in the computing industry. It comprises four streams with different emphases:

The Entrepreneurship Stream includes a solid core of computer science and software engineering, while exposing students to the framework and methodologies that underlie the development of innovative technology ideas into viable commercial opportunities. Enrolment into the Entrepreneurship stream will be limited to highly qualified and motivated students, and preference will be given to students enrolled in the Specialist (Co-operative) program.

The structure of the program requirements allows one to easily switch streams until relatively late in the program. Consequently, these streams should not be viewed as rigidly separated channels feeding students to different career paths, but as a flexible structure that provides computer science students guidance in their course selection based on their broad (but possibly fluid) interests.

Enrolment Requirements

Enrolment in the Specialist in Computer Science (all streams) is limited. Students may apply to enter the program after completing 4.0 credits, and must meet the requirements described below:

1. Students already admitted to the UTSC Year 1 Computer Science admissions category:

Required Courses:

Students must have passed the following CSC and MAT courses: CSCA08H3, CSCA48H3, CSCA67H3, MATA22H3, MATA31H3, and MATA37H3.

Required Grades:

Students that meet all of the following requirements will be admitted to a CS Specialist POSt*:
a. A cumulative grade point average (CGPA) of at least 2.5 over the following courses: CSCA48H3, CSCA67H3, MATA22H3, and MATA37H3;
b. A final grade of at least B in CSCA48H3; and
c. A final grade of at least C- in two of the following: CSCA67H3, MATA22H3, and MATA37H3.

*Students must select one stream of the CS Specialist as follows:
a. Students can select either the Comprehensive stream or the Software Engineering stream.
b. A limited number of students will be admitted to the Information Systems stream, depending on available space.
c. Admission to the Entrepreneurship stream will be based in part on submission of a Supplementary Application Form (SAF) available on the Department of Computer and Mathematical Sciences website. Applications for admission will be accepted once per academic year, during the April-May POSt admissions round.

2. Students admitted to other UTSC Year 1 admissions categories:

Students that have been admitted to either the UTSC Year 1 Math or UTSC Year 1 Statistics admissions categories are eligible to apply for the Computer Science Specialist POSt. Admission will be based on academic performance in the required A-level courses, identified above. The admission requirements change each year depending on available spaces and the pool of eligible applicants, and students are cautioned that there is no guarantee of admission; as such, students are strongly advised to plan to enroll in backup programs.

Students that have not been admitted to a UTSC Year 1 CMS admissions category (Computer Science, Mathematics, or Statistics) must achieve a final grade of at least A- in both MATA31H3 and CSCA67H3 the first time they complete these courses in order to be eligible to apply for a CS Specialist POSt. This is a strict requirement. Admission will be based on academic performance in the required A-level courses, identified above. The admission requirements change each year depending on available spaces and the pool of eligible applicants, and students are cautioned that there is no guarantee of admission; as such, students are strongly advised to plan to enroll in backup programs.

For more information about the admission requirements, please visit the following CMS webpage.

To remain in the program, a student must maintain a CGPA of 2.0 or higher throughout the program.

Note: Students admitted to the program after second or third year will be required to pay retroactive deregulated program fees.

Program Requirements
The program requirements comprise a core of 18 courses (9.0 credits), common to all streams and additional requirements which depend on the stream, for a total of 27 courses (13.5 credits) for the Comprehensive, Software Engineering, and Entrepreneurship streams, and 29 courses (14.5 credits) for the Information Systems stream.

Note: Many Computer Science courses are offered both at U of T Scarborough and at the St. George campus. When a course is offered at both campuses in a given session, U of T Scarborough students are expected to take that course at U of T Scarborough. The Department of Computer Science at the St. George campus cannot guarantee space for U of T Scarborough students in their courses, especially those offered at both campuses.

Core (9.0 credits)

1. Writing Requirement (0.5 credit)*
0.5 credit from the following: ANTA01H3, ANTA02H3, CLAA06H3, (CTLA19H3), CTLA01H3, ENGA10H3, ENGA11H3, ENGB06H3, ENGB07H3, ENGB08H3, ENGB09H3, ENGB17H3, ENGB19H3, ENGB50H3, (ENGB51H3), GGRA02H3, GGRA03H3, GGRB05H3, (GGRB06H3), (HISA01H3), (HLTA01H3), (ACMA01H3), (HUMA01H3), (HUMA11H3), (HUMA17H3), (LGGA99H3), LINA01H3, PHLA10H3, PHLA11H3, WSTA01H3.
*Note: It is recommended that this requirement be satisfied by the end of the second year.

2. A-level courses (3.0 credits)
CSCA08H3 Introduction to Computer Science I
CSCA48H3 Introduction to Computer Science II
CSCA67H3 Discrete Mathematics
MATA22H3 Linear Algebra I for Mathematical Sciences
MATA31H3 Calculus I for Mathematical Sciences
MATA37H3 Calculus II for Mathematical Sciences

3. B-level courses (3.5 credits)
CSCB07H3 Software Design
CSCB09H3 Software Tools and Systems Programming
CSCB36H3 Introduction to the Theory of Computation
CSCB58H3 Computer Organization
CSCB63H3 Design and Analysis of Data Structures
MATB24H3 Linear Algebra II
STAB52H3 Introduction to Probability

4. C-level courses (1.5 credits)
CSCC43H3 Introduction to Databases
CSCC69H3 Operating Systems
CSCC73H3 Algorithm Design and Analysis

5. D-level courses (0.5 credit)
CSCD03H3 Social Impact of Information Technology


Entrepreneurship Stream
This stream requires a total of 27 courses (13.5 credits). In addition to the core requirements 1-5 common to all streams, 9 other distinct courses (4.5 credits) must be chosen to satisfy all of the following requirements:

6. Additional required courses (3.0 credits)
CSCC01H3 Introduction to Software Engineering
CSCC37H3 Introduction to Numerical Algorithms for Computational Mathematics
CSCC63H3 Computability and Computational Complexity
CSCD01H3 Engineering Large Software Systems
CSCD54H3 Technology Innovation and Entrepreneurship
CSCD90H3 The Startup Sandbox

7. Electives from courses in computer science, mathematics, and statistics (1.5 credits)
Choose from:
CSCC09H3 Programming on the Web
CSCC10H3 Human-Computer Interaction
CSCC11H3 Introduction to Machine Learning and Data Mining
CSCC24H3 Principles of Programming Languages
CSCC46H3 Social and Information Networks
CSCC85H3 Fundamentals of Robotics and Automated Systems
CSCD18H3 Computer Graphics
CSCD25H3 Advanced Data Science
CSCD27H3 Computer and Network Security
CSCD43H3 Database System Technology
CSCD58H3 Computer Networks
CSCD70H3 Compiler Optimization
CSCD84H3 Artificial Intelligence
MATB41H3 Techniques of the Calculus of Several Variables I
STAB57H3 Introduction to Statistics
CSC320H1 Introduction to Visual Computing
CSC401H1 Natural Language Computing
CSC413H1 Neural Networks and Deep Learning
CSC469H1 Operating Systems Design and Implementation
CSC485H1 Computational Linguistics
CSC488H1 Compilers and Interpreters

SPECIALIST (CO-OPERATIVE) PROGRAM IN COMPUTER SCIENCE - Entrepreneurship Stream (SCIENCE) - SCSPE0805C

Academic Program Advisor: S. Calanza susan.calanza@utoronto.ca
Co-op Program Coordinator: coopsuccess.utsc@utoronto.ca

This program provides a working knowledge of the foundations of computer science: modern computer software and hardware, theoretical aspects of computer science, and relevant areas of mathematics and statistics. It also imparts an appreciation of the discipline's transformative impact on science and society. The program prepares students for further study and for careers in the computing industry. It comprises four streams with different emphases:


The Entrepreneurship Stream includes a solid core of computer science and software engineering, while exposing students to the framework and the methodologies that underlie the development of innovative technology ideas into viable commercial opportunities. Enrolment into the Entrepreneurship stream will be limited to highly qualified and motivated students, and preference will be given to students enrolled in the Specialist (Co-op) Program.

The structure of the program requirements allows one to easily switch streams until relatively late in the program. Consequently, these streams should not be viewed as rigidly separated channels feeding students to different career paths, but as a flexible structure that provides computer science students guidance in their course selection based on their broad (but possibly fluid) interests.

Enrolment Requirements

Enrolment in the Specialist (Co-operative) program in Computer Science (all streams) is limited. Students must have completed the required A-level CSC and MAT courses, and achieved the required grades.

Note: Co-op students who started in Co-op prior to Fall 2025 are allowed to follow the calendar requirements in effect at that time.

Prospective Co-op Students:
Students who have not yet been admitted into a Co-op Degree POSt must submit a co-op program request through ACORN and ensure they meet the minimum enrolment requirements as noted above. These qualifications may include a higher CGPA specific to the co-op program.

Deadlines follow the Limited Enrolment Program Application Deadlines set by the Office of the Registrar each year. Failure to submit the program request on ACORN will result in the student's application/request not being considered.

Please note that meeting the minimum qualifications does not guarantee enrolment in the Co-op Program of Study or Degree POSt. The required CGPA may be higher than the minimum threshold and depends on the applicant pool and number of spaces available.

Minimum Qualifications for Prospective Co-op Students:
Credits: Minimum of 4.0 credits to a maximum of 10.0 credits
Required Courses: As noted in the Enrolment Requirements above
Cumulative GPA: 2.75 across all attempted courses.

Current Co-op Students:
Students admitted to a Co-op Degree POSt must request a Co-op Program of Study through ACORN.

*Students must select one stream of the CS Specialist Co-op. Admission to the Entrepreneurship stream also requires the submission of a Supplementary Application Form available on the Department of Computer and Mathematical Sciences webpage.

Minimum Qualifications for Current Co-op Students:
Credits: 4.0 credits
Required Courses: Program-specific courses described in the Enrolment Requirements above
Cumulative GPA: 2.50 across all attempted courses.

Academic Program Requirements
Students must complete the program requirements as described in the Specialist Program in Computer Science. To be eligible for their first work term, students must be enrolled in the program, have completed at least 7.0 credits, including all first year required courses (CSCA08H3, CSCA48H3, CSCA67H3, MATA22H3, MATA31H3, MATA37H3), and maintain a CGPA of 2.50 or higher. In addition to their academic courses, students must also complete the required Co-op preparation courses.

Planning your Co-op Work Terms & Academics:
Enrollment in a Co-op program requires careful planning of both academics and work terms. Students should consult their Co-op Program Coordinator and Academic Program Advisors, as well as review the standard co-op sequences and course maps available on the Arts & Science Co-op website and Arts and Science Co-op Compass for guidance.

Co-op Work Term Requirements:
Students must successfully complete three Co-op work terms, totaling 12 months in duration, which can be fulfilled through the following options:

  • Three 4-month work terms, or
  • One 4-month work term and one 8-month work term, or
  • One 12-month work term.

Students must be available for work terms during the Fall, Winter, and Summer semesters, and are required to complete at least one of their work terms in either the Fall or Winter semester. As a result, students must also take courses during the Summer semesters.

Co-op Course Requirements:
Co-op students complete the following Co-op-specific courses as part of their degree

Co-op Preparation Courses (Completed in First Year):

Work Term Search Courses:

  • COPB57H3/​(COPB52H3) - Completed in the semester prior to the first work term
  • COPC98H3 - Taken in the semester prior to the second work term
  • COPC99H3 - Taken in the semester prior to the third work term

Co-op Work Term Courses:

Additional Work Terms & Courses:
After successful completion of three required work terms, students interested in additional work terms will require approval from the Arts & Science Co-op Office. Additional course work will also be required.

Note: Co-op courses are taken alongside a full course load and are recorded on transcripts as Credit/No Credit (CR/NCR). These courses have no credit weight and are considered additional credits beyond the 20.0 required degree credits. No additional course fee is charged, as registration is included in the Co-op Program fee.

For information on course codes, fees, status in Co-op programs, and certification of completion of Co-op programs, see the Co-operative Programs section and the Arts and Science Co-op section in the UTSC Calendar.

SPECIALIST PROGRAM IN COMPUTER SCIENCE - Information Systems Stream (SCIENCE) - SCSPE0455

Supervisor of Studies: R. Pancer (416-287-7679) Email: pancer@utsc.utoronto.ca

Program Objectives
This program provides a working knowledge of the foundations of computer science: modern computer software and hardware, theoretical aspects of computer science, and relevant areas of mathematics and statistics. It also imparts an appreciation of the discipline's transformative impact on science and society. The program prepares students for further study and for careers in the computing industry. It comprises four streams with different emphases:

The Information Systems Stream has a similar focus as the Software Engineering Stream, but it provides additional exposure to certain aspects of business management. It is of special interest to students wishing to pursue careers in technical management but who have a deep interest in the technology.

The structure of the program requirements allows one to easily switch streams until relatively late in the program. Consequently, these streams should not be viewed as rigidly separated channels feeding students to different career paths, but as a flexible structure that provides computer science students guidance in their course selection based on their broad (but possibly fluid) interests.

Enrolment Requirements

Enrolment in the Specialist in Computer Science (all streams) is limited. Students may apply to enter the program after completing 4.0 credits, and must meet the requirements described below:

1. Students already admitted to the UTSC Year 1 Computer Science admissions category:

Required Courses:

Students must have passed the following CSC and MAT courses: CSCA08H3, CSCA48H3, CSCA67H3, MATA22H3, MATA31H3, and MATA37H3.

Required Grades:

Students that meet all of the following requirements will be admitted to a CS Specialist POSt*:
a. A cumulative grade point average (CGPA) of at least 2.5 over the following courses: CSCA48H3, CSCA67H3, MATA22H3, and MATA37H3;
b. A final grade of at least B in CSCA48H3; and
c. A final grade of at least C- in two of the following: CSCA67H3, MATA22H3, and MATA37H3.

*Students must select one stream of the CS Specialist as follows:
a. Students can select either the Comprehensive stream or the Software Engineering stream.
b. A limited number of students will be admitted to the Information Systems stream, depending on available space.
c. Admission to the Entrepreneurship stream will be based in part on submission of a Supplementary Application Form (SAF) available on the Department of Computer and Mathematical Sciences website. Applications for admission will be accepted once per academic year, during the April-May POSt admissions round.

2. Students admitted to other UTSC Year 1 admissions categories:

Students that have been admitted to either the UTSC Year 1 Math or UTSC Year 1 Statistics admissions categories are eligible to apply for the Computer Science Specialist POSt. Admission will be based on academic performance in the required A-level courses, identified above. The admission requirements change each year depending on available spaces and the pool of eligible applicants, and students are cautioned that there is no guarantee of admission; as such, students are strongly advised to plan to enroll in backup programs.

Students that have not been admitted to a UTSC Year 1 CMS admissions category (Computer Science, Mathematics, or Statistics) must achieve a final grade of at least A- in both MATA31H3 and CSCA67H3 the first time they complete these courses in order to be eligible to apply for a CS Specialist POSt. This is a strict requirement. Admission will be based on academic performance in the required A-level courses, identified above. The admission requirements change each year depending on available spaces and the pool of eligible applicants, and students are cautioned that there is no guarantee of admission; as such, students are strongly advised to plan to enroll in backup programs.

For more information about the admission requirements, please visit the following CMS webpage.

To remain in the program, a student must maintain a CGPA of 2.0 or higher throughout the program.

Note: Students admitted to the program after second or third year will be required to pay retroactive deregulated program fees.

Program Requirements
The program requirements comprise a core of 18 courses (9.0 credits), common to all streams and additional requirements which depend on the stream, for a total of 27 courses (13.5 credits) for the Comprehensive, Software Engineering, and Entrepreneurship streams, and 29 courses (14.5 credits) for the Information Systems stream.

Note: Many Computer Science courses are offered both at U of T Scarborough and at the St. George campus. When a course is offered at both campuses in a given session, U of T Scarborough students are expected to take that course at U of T Scarborough. The Department of Computer Science at the St. George campus cannot guarantee space for U of T Scarborough students in their courses, especially those offered at both campuses.

Core (9.0 credits)

1. Writing Requirement (0.5 credit)*
0.5 credit from the following: ANTA01H3, ANTA02H3, CLAA06H3, (CTLA19H3), CTLA01H3, ENGA10H3, ENGA11H3, ENGB06H3, ENGB07H3, ENGB08H3, ENGB09H3, ENGB17H3, ENGB19H3, ENGB50H3, (ENGB51H3), GGRA02H3, GGRA03H3, GGRB05H3, (GGRB06H3), (HISA01H3), (HLTA01H3), (ACMA01H3), (HUMA01H3), (HUMA11H3), (HUMA17H3), (LGGA99H3), LINA01H3, PHLA10H3, PHLA11H3, WSTA01H3.
*Note: It is recommended that this requirement be satisfied by the end of the second year.

2. A-level courses (3.0 credits)
CSCA08H3 Introduction to Computer Science I
CSCA48H3 Introduction to Computer Science II
CSCA67H3 Discrete Mathematics
MATA22H3 Linear Algebra I for Mathematical Sciences
MATA31H3 Calculus I for Mathematical Sciences
MATA37H3 Calculus II for Mathematical Sciences

3. B-level courses (3.5 credits)
CSCB07H3 Software Design
CSCB09H3 Software Tools and Systems Programming
CSCB36H3 Introduction to the Theory of Computation
CSCB58H3 Computer Organization
CSCB63H3 Design and Analysis of Data Structures
MATB24H3 Linear Algebra II
STAB52H3 Introduction to Probability

4. C-level courses (1.5 credits)
CSCC43H3 Introduction to Databases
CSCC69H3 Operating Systems
CSCC73H3 Algorithm Design and Analysis

5. D-level courses (0.5 credit)
CSCD03H3 Social Impact of Information Technology


Information Systems Stream
This stream requires a total of 29 courses (14.5 credits). In addition to the core requirements 1-5 common to all streams, 11 other distinct courses (5.5 credits) must be chosen to satisfy all of the following requirements:

6. Required management courses (1.5 credits)
MGTA01H3 Introduction to Business
MGTA02H3 Managing the Business Organization
MGHB02H3 Managing People and Groups in Organizations

7. Additional required mathematics and computer science courses (3.0 credits)
CSCC01H3 Introduction to Software Engineering
CSCC37H3 Introduction to Numerical Algorithms for Computational Mathematics
CSCC63H3 Computability and Computational Complexity
CSCD01H3 Engineering Large Software Systems
CSCD43H3 Database System Technology
MATB41H3 Techniques of the Calculus of Several Variables I

8. Electives from courses on computer systems and applications (1.0 credit)
Choose from:
CSCC09H3 Programming on the Web
CSCC10H3 Human-Computer Interaction
CSCC11H3 Introduction to Machine Learning and Data Mining
CSCC46H3 Social and Information Networks
CSCC85H3 Fundamentals of Robotics and Automated Systems
CSCD18H3 Computer Graphics
CSCD25H3 Advanced Data Science
CSCD27H3 Computer and Network Security
CSCD58H3 Computer Networks
CSCD70H3 Compiler Optimization
CSCD84H3 Artificial Intelligence
CSC320H1 Introduction to Visual Computing
CSC401H1 Natural Language Computing
CSC413H1 Neural Networks and Deep Learning
CSC469H1 Operating Systems Design and Implementation
CSC485H1 Computational Linguistics
CSC488H1 Compilers and Interpreters

SPECIALIST (CO-OPERATIVE) PROGRAM IN COMPUTER SCIENCE - Information Systems Stream (SCIENCE) - SCSPE0455C

Academic Program Advisor: S. Calanza susan.calanza@utoronto.ca
Co-op Program Coordinator: coopsuccess.utsc@utoronto.ca

This program provides a working knowledge of the foundations of computer science: modern computer software and hardware, theoretical aspects of computer science, and relevant areas of mathematics and statistics. It also imparts an appreciation of the discipline's transformative impact on science and society. The program prepares students for further study and for careers in the computing industry. It comprises four streams with different emphases:

The Information Systems Stream has a similar focus as the Software Engineering Stream, but it provides additional exposure to certain aspects of business management. It is of special interest to students wishing to pursue careers in technical management but who have a deep interest in the technology.

The structure of the program requirements allows one to easily switch streams until relatively late in the program. Consequently, these streams should not be viewed as rigidly separated channels feeding students to different career paths, but as a flexible structure that provides computer science students guidance in their course selection based on their broad (but possibly fluid) interests.

Enrolment Requirements

Enrolment in the Specialist (Co-operative) program in Computer Science (all streams) is limited. Students must have completed the required A-level CSC and MAT courses, and achieved the required grades.

Note: Co-op students who started in Co-op prior to Fall 2025 are allowed to follow the calendar requirements in effect at that time.

Prospective Co-op Students:
Students who have not yet been admitted into a Co-op Degree POSt must submit a co-op program request through ACORN and ensure they meet the minimum enrolment requirements as noted above. These qualifications may include a higher CGPA specific to the co-op program.

Deadlines follow the Limited Enrolment Program Application Deadlines set by the Office of the Registrar each year. Failure to submit the program request on ACORN will result in the student's application/request not being considered.

Please note that meeting the minimum qualifications does not guarantee enrolment in the Co-op Program of Study or Degree POSt. The required CGPA may be higher than the minimum threshold and depends on the applicant pool and number of spaces available.

Minimum Qualifications for Prospective Co-op Students:
Credits: Minimum of 4.0 credits to a maximum of 10.0 credits
Required Courses: As noted in the Enrolment Requirements above
Cumulative GPA: 2.75 across all attempted courses.

Current Co-op Students:
Students admitted to a Co-op Degree POSt must request a Co-op Program of Study through ACORN.

*Students must select one stream of the CS Specialist Co-op. Admission to the Entrepreneurship stream also requires the submission of a Supplementary Application Form available on the Department of Computer and Mathematical Sciences webpage.

Minimum Qualifications for Current Co-op Students:
Credits: 4.0 credits
Required Courses: Program-specific courses described in the Enrolment Requirements above
Cumulative GPA: 2.50 across all attempted courses.

Academic Program Requirements
Students must complete the program requirements as described in the Specialist Program in Computer Science. To be eligible for their first work term, students must be enrolled in the program, have completed at least 7.0 credits, including all first year required courses (CSCA08H3, CSCA48H3, CSCA67H3, MATA22H3, MATA31H3, MATA37H3), and maintain a CGPA of 2.50 or higher. In addition to their academic courses, students must also complete the required Co-op preparation courses.

Planning your Co-op Work Terms & Academics:
Enrollment in a Co-op program requires careful planning of both academics and work terms. Students should consult their Co-op Program Coordinator and Academic Program Advisors, as well as review the standard co-op sequences and course maps available on the Arts & Science Co-op website and Arts and Science Co-op Compass for guidance.

Co-op Work Term Requirements:
Students must successfully complete three Co-op work terms, totaling 12 months in duration, which can be fulfilled through the following options:

  • Three 4-month work terms, or
  • One 4-month work term and one 8-month work term, or
  • One 12-month work term.

Students must be available for work terms during the Fall, Winter, and Summer semesters, and are required to complete at least one of their work terms in either the Fall or Winter semester. As a result, students must also take courses during the Summer semesters.

Co-op Course Requirements:
Co-op students complete the following Co-op-specific courses as part of their degree

Co-op Preparation Courses (Completed in First Year):

Work Term Search Courses:

  • COPB57H3/​(COPB52H3) - Completed in the semester prior to the first work term
  • COPC98H3 - Taken in the semester prior to the second work term
  • COPC99H3 - Taken in the semester prior to the third work term

Co-op Work Term Courses:

Additional Work Terms & Courses:
After successful completion of three required work terms, students interested in additional work terms will require approval from the Arts & Science Co-op Office. Additional course work will also be required.

Note: Co-op courses are taken alongside a full course load and are recorded on transcripts as Credit/No Credit (CR/NCR). These courses have no credit weight and are considered additional credits beyond the 20.0 required degree credits. No additional course fee is charged, as registration is included in the Co-op Program fee.

For information on course codes, fees, status in Co-op programs, and certification of completion of Co-op programs, see the Co-operative Programs section and the Arts and Science Co-op section in the UTSC Calendar.

SPECIALIST PROGRAM IN COMPUTER SCIENCE - Software Engineering Stream (SCIENCE) - SCSPE0795

Supervisor of Studies: R. Pancer (416-287-7679) Email: pancer@utsc.utoronto.ca

Program Objectives
This program provides a working knowledge of the foundations of computer science: modern computer software and hardware, theoretical aspects of computer science, and relevant areas of mathematics and statistics. It also imparts an appreciation of the discipline's transformative impact on science and society. The program prepares students for further study and for careers in the computing industry. It comprises four streams with different emphases:

The Software Engineering Stream places a greater emphasis on the engineering side of the discipline, including computer systems and core applications.

The structure of the program requirements allows one to easily switch streams until relatively late in the program. Consequently, these streams should not be viewed as rigidly separated channels feeding students to different career paths, but as a flexible structure that provides computer science students guidance in their course selection based on their broad (but possibly fluid) interests.

Enrolment Requirements

Enrolment in the Specialist in Computer Science (all streams) is limited. Students may apply to enter the program after completing 4.0 credits, and must meet the requirements described below:

1. Students already admitted to the UTSC Year 1 Computer Science admissions category:

Required Courses:

Students must have passed the following CSC and MAT courses: CSCA08H3, CSCA48H3, CSCA67H3, MATA22H3, MATA31H3, and MATA37H3.

Required Grades:

Students that meet all of the following requirements will be admitted to a CS Specialist POSt*:
a. A cumulative grade point average (CGPA) of at least 2.5 over the following courses: CSCA48H3, CSCA67H3, MATA22H3, and MATA37H3;
b. A final grade of at least B in CSCA48H3; and
c. A final grade of at least C- in two of the following: CSCA67H3, MATA22H3, and MATA37H3.

*Students must select one stream of the CS Specialist as follows:
a. Students can select either the Comprehensive stream or the Software Engineering stream.
b. A limited number of students will be admitted to the Information Systems stream, depending on available space.
c. Admission to the Entrepreneurship stream will be based in part on submission of a Supplementary Application Form (SAF) available on the Department of Computer and Mathematical Sciences website. Applications for admission will be accepted once per academic year, during the April-May POSt admissions round.

2. Students admitted to other UTSC Year 1 admissions categories:

Students that have been admitted to either the UTSC Year 1 Math or UTSC Year 1 Statistics admissions categories are eligible to apply for the Computer Science Specialist POSt. Admission will be based on academic performance in the required A-level courses, identified above. The admission requirements change each year depending on available spaces and the pool of eligible applicants, and students are cautioned that there is no guarantee of admission; as such, students are strongly advised to plan to enroll in backup programs.

Students that have not been admitted to a UTSC Year 1 CMS admissions category (Computer Science, Mathematics, or Statistics) must achieve a final grade of at least A- in both MATA31H3 and CSCA67H3 the first time they complete these courses in order to be eligible to apply for a CS Specialist POSt. This is a strict requirement. Admission will be based on academic performance in the required A-level courses, identified above. The admission requirements change each year depending on available spaces and the pool of eligible applicants, and students are cautioned that there is no guarantee of admission; as such, students are strongly advised to plan to enroll in backup programs.

For more information about the admission requirements, please visit the following CMS webpage.

To remain in the program, a student must maintain a CGPA of 2.0 or higher throughout the program.

Note: Students admitted to the program after second or third year will be required to pay retroactive deregulated program fees.

Program Requirements
The program requirements comprise a core of 18 courses (9.0 credits), common to all streams and additional requirements which depend on the stream, for a total of 27 courses (13.5 credits) for the Comprehensive, Software Engineering, and Entrepreneurship streams, and 29 courses (14.5 credits) for the Information Systems stream.

Note: Many Computer Science courses are offered both at U of T Scarborough and at the St. George campus. When a course is offered at both campuses in a given session, U of T Scarborough students are expected to take that course at U of T Scarborough. The Department of Computer Science at the St. George campus cannot guarantee space for U of T Scarborough students in their courses, especially those offered at both campuses.

Core (9.0 credits)

1. Writing Requirement (0.5 credit)*
0.5 credit from the following: ANTA01H3, ANTA02H3, CLAA06H3, (CTLA19H3), CTLA01H3, ENGA10H3, ENGA11H3, ENGB06H3, ENGB07H3, ENGB08H3, ENGB09H3, ENGB17H3, ENGB19H3, ENGB50H3, (ENGB51H3), GGRA02H3, GGRA03H3, GGRB05H3, (GGRB06H3), (HISA01H3), (HLTA01H3), (ACMA01H3), (HUMA01H3), (HUMA11H3), (HUMA17H3), (LGGA99H3), LINA01H3, PHLA10H3, PHLA11H3, WSTA01H3.
*Note: It is recommended that this requirement be satisfied by the end of the second year.

2. A-level courses (3.0 credits)
CSCA08H3 Introduction to Computer Science I
CSCA48H3 Introduction to Computer Science II
CSCA67H3 Discrete Mathematics
MATA22H3 Linear Algebra I for Mathematical Sciences
MATA31H3 Calculus I for Mathematical Sciences
MATA37H3 Calculus II for Mathematical Sciences

3. B-level courses (3.5 credits)
CSCB07H3 Software Design
CSCB09H3 Software Tools and Systems Programming
CSCB36H3 Introduction to the Theory of Computation
CSCB58H3 Computer Organization
CSCB63H3 Design and Analysis of Data Structures
MATB24H3 Linear Algebra II
STAB52H3 Introduction to Probability

4. C-level courses (1.5 credits)
CSCC43H3 Introduction to Databases
CSCC69H3 Operating Systems
CSCC73H3 Algorithm Design and Analysis

5. D-level courses (0.5 credit)
CSCD03H3 Social Impact of Information Technology


Software Engineering Stream
This stream requires a total of 27 courses (13.5 credits). In addition to the core requirements 1-5 common to all streams, 9 other distinct courses (4.5 credits) must be chosen to satisfy all of the following requirements:

6. Additional required courses (3.0 credits)
CSCC01H3 Introduction to Software Engineering
CSCC24H3 Principles of Programming Languages
CSCC37H3 Introduction to Numerical Algorithms for Computational Mathematics
CSCC63H3 Computability and Computational Complexity
CSCD01H3 Engineering Large Software Systems
MATB41H3 Techniques of the Calculus of Several Variables I

7. Electives from courses on computer systems and applications (1.5 credits)
Choose from:
CSCC09H3 Programming on the Web
CSCC10H3 Human-Computer Interaction
CSCC11H3 Introduction to Machine Learning and Data Mining
CSCC46H3 Social and Information Networks
CSCC85H3 Fundamentals of Robotics and Automated Systems
CSCD18H3 Computer Graphics
CSCD25H3 Advanced Data Science
CSCD27H3 Computer and Network Security
CSCD43H3 Database System Technology
CSCD58H3 Computer Networks
CSCD70H3 Compiler Optimization
CSCD84H3 Artificial Intelligence
CSC320H1 Introduction to Visual Computing
CSC401H1 Natural Language Computing
CSC413H1 Neural Networks and Deep Learning
CSC469H1 Operating Systems Design and Implementation
CSC485H1 Computational Linguistics
CSC488H1 Compilers and Interpreters

SPECIALIST (CO-OPERATIVE) PROGRAM IN COMPUTER SCIENCE - Software Engineering Stream (SCIENCE) - SCSPE0795C

Academic Program Advisor: S. Calanza susan.calanza@utoronto.ca 
Co-op Program Coordinator: coopsuccess.utsc@utoronto.ca

This program provides a working knowledge of the foundations of computer science: modern computer software and hardware, theoretical aspects of computer science, and relevant areas of mathematics and statistics. It also imparts an appreciation of the discipline's transformative impact on science and society. The program prepares students for further study and for careers in the computing industry. It comprises four streams with different emphases:

The Software Engineering Stream places a greater emphasis on the engineering side of the discipline, including computer systems and core applications.

The structure of the program requirements allows one to easily switch streams until relatively late in the program. Consequently, these streams should not be viewed as rigidly separated channels feeding students to different career paths, but as a flexible structure that provides computer science students guidance in their course selection based on their broad (but possibly fluid) interests.

Enrolment Requirements
Enrolment in the Specialist (Co-operative) program in Computer Science (all streams) is limited. Students must have completed the required A-level CSC and MAT courses, and achieved the required grades.

Note: Co-op students who started in Co-op prior to Fall 2025 are allowed to follow the calendar requirements in effect at that time.

Prospective Co-op Students:
Students who have not yet been admitted into a Co-op Degree POSt must submit a co-op program request through ACORN and ensure they meet the minimum enrolment requirements as noted above. These qualifications may include a higher CGPA specific to the co-op program.

Deadlines follow the Limited Enrolment Program Application Deadlines set by the Office of the Registrar each year. Failure to submit the program request on ACORN will result in the student's application/request not being considered.

Please note that meeting the minimum qualifications does not guarantee enrolment in the Co-op Program of Study or Degree POSt. The required CGPA may be higher than the minimum threshold and depends on the applicant pool and number of spaces available.

Minimum Qualifications for Prospective Co-op Students:
Credits: Minimum of 4.0 credits to a maximum of 10.0 credits
Required Courses: As noted in the Enrolment Requirements above
Cumulative GPA: 2.75 across all attempted courses.

Current Co-op Students:
Students admitted to a Co-op Degree POSt must request a Co-op Program of Study through ACORN.

*Students must select one stream of the CS Specialist Co-op. Admission to the Entrepreneurship stream also requires the submission of a Supplementary Application Form available on the Department of Computer and Mathematical Sciences webpage.

Minimum Qualifications for Current Co-op Students:
Credits: 4.0 credits
Required Courses: Program-specific courses described in the Enrolment Requirements above
Cumulative GPA: 2.50 across all attempted courses.


Program Requirements
Students must complete the program requirements as described in the Specialist Program in Computer Science. To be eligible for their first work term, students must be enrolled in the program, have completed at least 7.0 credits, including all first year required courses (CSCA08H3, CSCA48H3, CSCA67H3, MATA22H3, MATA31H3, MATA37H3), and maintain a CGPA of 2.50 or higher. In addition to their academic courses, students must also complete the required Co-op preparation courses.

Planning your Co-op Work Terms & Academics:
Enrollment in a Co-op program requires careful planning of both academics and work terms. Students should consult their Co-op Program Coordinator and Academic Program Advisors, as well as review the standard co-op sequences and course maps available on the Arts & Science Co-op website and Arts and Science Co-op Compass for guidance.

Co-op Work Term Requirements:
Students must successfully complete three Co-op work terms, totaling 12 months in duration, which can be fulfilled through the following options:

  • Three 4-month work terms, or
  • One 4-month work term and one 8-month work term, or
  • One 12-month work term.

Students must be available for work terms during the Fall, Winter, and Summer semesters, and are required to complete at least one of their work terms in either the Fall or Winter semester. As a result, students must also take courses during the Summer semesters.

Co-op Course Requirements:
Co-op students complete the following Co-op-specific courses as part of their degree

Co-op Preparation Courses (Completed in First Year):

Work Term Search Courses:

  • COPB57H3/​(COPB52H3) - Completed in the semester prior to the first work term
  • COPC98H3 - Taken in the semester prior to the second work term
  • COPC99H3 - Taken in the semester prior to the third work term

Co-op Work Term Courses:

Additional Work Terms & Courses:
After successful completion of three required work terms, students interested in additional work terms will require approval from the Arts & Science Co-op Office. Additional course work will also be required.

Note: Co-op courses are taken alongside a full course load and are recorded on transcripts as Credit/No Credit (CR/NCR). These courses have no credit weight and are considered additional credits beyond the 20.0 required degree credits. No additional course fee is charged, as registration is included in the Co-op Program fee.

For information on course codes, fees, status in Co-op programs, and certification of completion of Co-op programs, see the Co-operative Programs section and the Arts and Science Co-op section in the UTSC Calendar.

MAJOR PROGRAM IN COMPUTER SCIENCE (SCIENCE) - SCMAJ1688

Supervisor of Studies: R. Pancer (416-287-7679) Email: pancer@utsc.utoronto.ca


Program Objectives

This program provides basic knowledge of the foundations of computer science: modern computer software and hardware, theoretical aspects of computer science, and relevant areas of mathematics and statistics. This program is intended to be combined with other programs, typically a major program in another discipline.

Enrolment Requirements

Enrolment in the Major in Computer Science is limited. Students may apply to enter the program after completing 4.0 credits, and must meet the requirements described below:

1. Students already admitted to the UTSC Year 1 Computer Science admissions category:

Required Courses:

Students must have passed the following CSC and MAT courses: CSCA08H3, CSCA48H3, CSCA67H3, MATA22H3, MATA31H3, and MATA37H3.

Required Grades:

Students that meet all of the following requirements will be admitted to a CS Major POSt:
a. A cumulative grade point average (CGPA) of at least 2.5 over the following courses: CSCA48H3, CSCA67H3, MATA22H3, and MATA37H3;
b. A final grade of at least B in CSCA48H3; and
c. A final grade of at least C- in two of the following: CSCA67H3, MATA22H3, and MATA37H3.

2. Students admitted to other UTSC Year 1 admissions categories:

Students that have been admitted to either the UTSC Year 1 Math or UTSC Year 1 Statistics admissions categories are eligible to apply for the Computer Science Major POSt. Admission will be based on academic performance in the required A-level courses, identified above. The admission requirements change each year depending on available spaces and the pool of eligible applicants, and students are cautioned that there is no guarantee of admission; as such, students are strongly advised to plan to enroll in backup programs.

Students that have not been admitted to a UTSC Year 1 CMS admissions category (Computer Science, Mathematics, or Statistics) must achieve a final grade of at least A- in both MATA31H3 and CSCA67H3 the first time they complete these courses in order to be eligible to apply for a CS Major POSt. This is a strict requirement. Admission will be based on academic performance in the required A-level courses, identified above. The admission requirements change each year depending on available spaces and the pool of eligible applicants, and students are cautioned that there is no guarantee of admission; as such, students are strongly advised to plan to enroll in backup programs.

For more information about the admission requirements, please visit the following CMS webpage.

Note: Students admitted to the program after second or third year will be required to pay retroactive deregulated program fees.

Program Requirements
This program requires a total of 16 distinct courses (8.0 credits) satisfying all of the requirements listed below.

Note: Many Computer Science courses are offered both at U of T Scarborough and at the St. George campus. When a course is offered at both campuses in a given session, U of T Scarborough students are expected to take that course at U of T Scarborough. The Department of Computer Science at the St. George campus cannot guarantee space for U of T Scarborough students in their courses, especially those offered at both campuses.

1. A-level courses (3.0 credits)
CSCA08H3 Introduction to Computer Science I
CSCA48H3 Introduction to Computer Science II
CSCA67H3 Discrete Mathematics
MATA22H3 Linear Algebra I for Mathematical Sciences
MATA31H3 Calculus I for Mathematical Sciences
MATA37H3 Calculus II for Mathematical Sciences

2. B-level courses (3.0 credits)
CSCB07H3 Software Design
CSCB09H3 Software Tools and Systems Programming
CSCB36H3 Introduction to the Theory of Computation
CSCB58H3 Computer Organization
CSCB63H3 Design and Analysis of Data Structures
and
0.5 credit from the following*:

MATB24H3 Linear Algebra II
STAB52H3 Introduction to Probability
*Note: In making this choice, students should consider the prerequisites of courses they plan to take to satisfy requirements 3-4.

3. C-level courses in numerical computation and theory of computing (1.0 credit)
CSCC37H3 Introduction to Numerical Algorithms for Computational Mathematics
and
0.5 credit from the following:

CSCC63H3 Computability and Computational Complexity
CSCC73H3 Algorithm Design and Analysis

4. CSC electives (1.0 credit)
1.0 credits in any C- or D-level CSC courses.

Writing Recommendation:
Students are urged to take a course from the following list of courses by the end of their second year: ANTA01H3, ANTA02H3, CLAA06H3, (CTLA19H3), CTLA01H3, ENGA10H3, ENGA11H3, ENGB06H3, ENGB07H3, ENGB08H3, ENGB17H3, ENGB19H3, ENGB50H3, (ENGB51H3), GGRA02H3, GGRA03H3, GGRB05H3, (GGRB06H3), (HISA01H3), (HLTA01H3), (HUMA01H3), (HUMA11H3), (HUMA17H3), (LGGA99H3), LINA01H3, PHLA10H3, PHLA11H3, WSTA01H3.

MAJOR (CO-OPERATIVE) PROGRAM IN COMPUTER SCIENCE (SCIENCE) - SCMAJ1688C

Academic Program Advisor: S. Calanza susan.calanza@utoronto.ca
Co-op Program Coordinator: coopsuccess.utsc@utoronto.ca

The Major (Co-op) Program in Computer Science is a Work Integrated Learning (WIL) program that combines academic studies with paid work terms in the public, private, and/or non-profit sectors. The program provides students with the opportunity to develop the academic and professional skills required to pursue employment in these areas, or to continue on to graduate training in an academic field related to Computer Science upon graduation.

In addition to their academic course requirements, students must successfully complete the additive Arts & Science Co-op Work Term and Course requirements.

Enrolment Requirements

Enrolment in the Major (Co-operative) Program in Computer Science is limited. Students must have completed the required A-level CSC and MAT courses, and achieved the required grades.

Note: Co-op students who started in Co-op prior to Fall 2025 are allowed to follow the calendar requirements in effect at that time.

Prospective Co-op Students:
Students who have not yet been admitted into a Co-op Degree POSt must submit a co-op program request through ACORN and ensure they meet the minimum enrolment requirements as noted above. These qualifications may include a higher CGPA specific to the co-op program.

Deadlines follow the Limited Enrolment Program Application Deadlines set by the Office of the Registrar each year. Failure to submit the program request on ACORN will result in the student's application/request not being considered.

Please note that meeting the minimum qualifications does not guarantee enrolment in the Co-op Program of Study or Degree POSt. The required CGPA may be higher than the minimum threshold and depends on the applicant pool and number of spaces available.

Minimum Qualifications for Prospective Co-op Students:
Credits: Minimum of 4.0 credits to a maximum of 10.0 credits
Required Courses: As noted in the Enrolment Requirements above
Cumulative GPA: 2.75 across all attempted courses.

Current Co-op Students:
Students admitted to a Co-op Degree POSt must request a Co-op Program of Study through ACORN.

Minimum Qualifications for Current Co-op Students:
Credits: 4.0 credits
Required Courses: Program-specific courses described in the Enrolment Requirements above
Cumulative GPA: 2.50 across all attempted courses.

Academic Program Requirements
Students must complete the program requirements as described in the Major in Computer Science (Science).

Planning your Co-op Work Terms & Academics:
Enrollment in a Co-op program requires careful planning of both academics and work terms. Students should consult their Co-op Program Coordinator and Academic Program Advisors, as well as review the standard co-op sequences and course maps available on the Arts & Science Co-op website and Arts and Science Co-op Compass for guidance.

Co-op Work Term Requirements:
Students must successfully complete three Co-op work terms, totaling 12 months in duration, which can be fulfilled through the following options:

  • Three 4-month work terms, or
  • One 4-month work term and one 8-month work term, or
  • One 12-month work term.

Students must be available for work terms during the Fall, Winter, and Summer semesters, and are required to complete at least one of their work terms in either the Fall or Winter semester. As a result, students must also take courses during the Summer semesters.

To be eligible for their first work term, students must be enrolled in the program, have completed at least 7.0 credits, and maintain a CGPA of 2.50 or higher. In addition to their academic courses, students must also complete the required Co-op preparation courses.

Co-op Course Requirements:
Co-op students complete the following Co-op-specific courses as part of their degree

Co-op Preparation Courses (Completed in First Year):

Work Term Search Courses:

  • COPB57H3/​(COPB52H3) - Completed in the semester prior to the first work term
  • COPC98H3 - Taken in the semester prior to the second work term
  • COPC99H3 - Taken in the semester prior to the third work term

Co-op Work Term Courses:

Additional Work Terms & Courses:
After successful completion of three required work terms, students interested in additional work terms will require approval from the Arts & Science Co-op Office. Additional course work will also be required.

Note: Co-op courses are taken alongside a full course load and are recorded on transcripts as Credit/No Credit (CR/NCR). These courses have no credit weight and are considered additional credits beyond the 20.0 required degree credits. No additional course fee is charged, as registration is included in the Co-op Program fee.

For information on course codes, fees, status in Co-op programs, and certification of completion of Co-op programs, see the Co-operative Programs section and the Arts and Science Co-op section in the UTSC Calendar.

MINOR PROGRAM IN COMPUTER SCIENCE (SCIENCE) - SCMIN1688

Supervisor of Studies: R. Pancer (416-287-7679) Email: pancer@utsc.utoronto.ca


Program Objectives

This program provides a basic introduction to the tools and methodologies of computer science and equips students with the knowledge necessary to use the tools and methodologies as they relate to other subjects. The program is intended to complement programs in other disciplines.

Enrolment Requirements


Enrolment in the Minor in Computer Science is limited.

Students may apply to enter the program after completing 4.0 credits, and must have passed the following CSC and MAT courses: CSCA08H3, CSCA48H3, and [one of: CSCA67H3, MATA22H3, MATA23H3]. Admission will be based on academic performance in these A-level courses. The admission requirements change each year depending on available spaces and the pool of eligible applicants, and students are cautioned that there is no guarantee of admission; as such, students are strongly advised to plan to enroll in backup programs.

For more information about the admission requirements, please visit the following CMS webpage.

Students in the Minor may take a maximum of 3 CSC elective courses (1.5 credits) at the C-level and D-level.

Program Requirements
This program may not be combined with any Major or Specialist Program in Computer Science, Mathematics or Statistics. It requires 4.0 credits as follows:

1. Introductory programming courses, 1.0 credit as follows:
CSCA08H3 Introduction to Computer Science I*
CSCA48H3 Introduction to Computer Science II
*Note: CSCA20H3 may be substituted for CSCA08H3 with permission of the Supervisor of Studies.

2. Basic mathematics courses, 0.5 credit from the following:
CSCA67H3 Discrete Mathematics
MATA22H3 Linear Algebra I for Mathematical Sciences
MATA23H3 Linear Algebra I
MATA30H3 Calculus I for Physical Sciences
MATA31H3 Calculus I for Mathematical Sciences
MATA34H3 Calculus for Management

3. Intermediate programming, systems, and theory courses, 1.5 credits from the following:
CSCB07H3 Software Design
CSCB09H3 Software Tools and Systems Programming
CSCB20H3 Introduction to Databases and Web Applications
CSCB36H3 Introduction to the Theory of Computation**
CSCB58H3 Computer Organization
CSCB63H3 Design and Analysis of Data Structures***
**Note: CSCB36H3 requires CSCA67H3
***Note: CSCB63H3 requires CSCB36H3

4. CSC electives, 1.0 credit as follows:
Any C- or D-level CSC courses*
*Note: Some C- or D-level courses have prerequisites that would have to be taken in addition to the 4 credits required for this program. Check the prerequisites carefully before selecting courses to satisfy this requirement.

 

Computer Science Courses

CSCA08H3 - Introduction to Computer Science I

Programming in an object-oriented language such as Python. Program structure: elementary data types, statements, control flow, functions, classes, objects, methods. Lists; searching, sorting and complexity. This course is intended for students having a serious interest in higher level computer science courses, or planning to complete a computer science program.

Prerequisite: Grade 12 Calculus and Vectors and [one other Grade 12 mathematics course or CTL Math Preparedness course with additional resources for CMS students].
Exclusion: CSCA20H3, CSC108H, CSC110H, CSC120H. CSCA08H3 may not be taken after or concurrently with CSCA48H3. CSC110H cannot be taken after or concurrently with CSC111H.
Breadth Requirements: Quantitative Reasoning
Note: This course does not require any prior exposure to computer programming.

CSCA20H3 - Introduction to Programming

An introduction to computer programming, with an emphasis on gaining practical skills. Introduction to programming, software tools, database manipulation. This course is appropriate for students with an interest in programming and computers who do not plan to pursue a Computer Science program.

Exclusion: CSCA08H3, CSC108H, CSC110H, CSC120H. CSC110H cannot be taken after or at the same time as CSC111H.  
Breadth Requirements: Quantitative Reasoning
Note: This course does not require any prior exposure to computer programming.

CSCA48H3 - Introduction to Computer Science II

Abstract data types and data structures for implementing them. Linked data structures. Object Oriented Programming. Encapsulation and information-hiding. Testing. Specifications. Analyzing the efficiency of programs. Recursion.

Prerequisite: CSCA08H3
Exclusion: CSC148H, CSC111H
Breadth Requirements: Quantitative Reasoning

CSCA67H3 - Discrete Mathematics

Introduction to discrete mathematics: Elementary combinatorics; discrete probability including conditional probability and independence; graph theory including trees, planar graphs, searches and traversals, colouring. The course emphasizes topics of relevance to computer science, and exercises problem-solving skills and proof techniques such as well ordering, induction, contradiction, and counterexample.
Same as MATA67H3

Prerequisite: Grade 12 Calculus and Vectors and one other Grade 12 mathematics course
Exclusion: (MATA67H3), (CSCA65H3), CSC165H, CSC240H, MAT102H
Recommended Preparation: CSCA08H3 or CSCA20H3
Breadth Requirements: Quantitative Reasoning

CSCB07H3 - Software Design

An introduction to software design and development concepts, methods, and tools, using a statically-typed object-oriented language such as Java. Topics from: version control, build management, unit testing, refactoring, object-oriented design and development, design patterns and advanced IDE usage.

Prerequisite: CSCA48H3 and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: CSC207H
Breadth Requirements: Quantitative Reasoning

CSCB09H3 - Software Tools and Systems Programming

Software techniques in a Unix-style environment, using scripting languages and a machine-oriented programming language (typically C). What goes on in the system when programs are executed. Core topics: creating and using software tools, pipes and filters, file processing, shell programming, processes, system calls, signals, basic network programming.

Prerequisite: CSCA48H3 and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: CSC209H
Breadth Requirements: Quantitative Reasoning

CSCB20H3 - Introduction to Databases and Web Applications

A practical introduction to databases and Web app development. Databases: terminology and applications; creating, querying and updating databases; the entity-relationship model for database design. Web documents and applications: static and interactive documents; Web servers and dynamic server-generated content; Web application development and interface with databases.

Prerequisite: Some experience with programming in an imperative language such as Python, Java or C.
Exclusion: This course may not be taken after - or concurrently with - any C- or D-level CSC course.
Recommended Preparation: CSCA08H3 or CSCA20H3
Breadth Requirements: Quantitative Reasoning

CSCB36H3 - Introduction to the Theory of Computation

Mathematical induction with emphasis on applications relevant to computer science. Aspects of mathematical logic, correctness proofs for iterative and recursive algorithms, solutions of linear and divide-and-conquer recurrences, introduction to automata and formal languages.

Prerequisite: CSCA48H3 and [(CSCA65H3) or CSCA67H3] and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: CSC236H, CSC240H
Breadth Requirements: Quantitative Reasoning

CSCB58H3 - Computer Organization

Principles of the design and operation of digital computers. Binary data representation and manipulation, Boolean logic, components of computer systems, memory technology, peripherals, structure of a CPU, assembly languages, instruction execution, and addressing techniques. There are a number of laboratory periods in which students conduct experiments with digital logic circuits.

Prerequisite: [CSCA48H3 or PHYB57H3/(PSCB57H3)] and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: CSC258H
Breadth Requirements: Quantitative Reasoning

CSCB63H3 - Design and Analysis of Data Structures

Design, analysis, implementation and comparison of efficient data structures for common abstract data types. Priority queues: heaps and mergeable heaps. Dictionaries: balanced binary search trees, B-trees, hashing. Amortization: data structures for managing dynamic tables and disjoint sets. Data structures for representing graphs. Graph searches.

Prerequisite: CSCB36H3 and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Corequisite: STAB52H3
Exclusion: CSC263H, CSC265H
Breadth Requirements: Quantitative Reasoning

CSCC01H3 - Introduction to Software Engineering

Introduction to software development methodologies with an emphasis on agile development methods appropriate for rapidly-moving projects. Basic software development infrastructure; requirements elicitation and tracking; prototyping; basic project management; basic UML; introduction to software architecture; design patterns; testing.

Prerequisite: CSCB07H3, CSCB09H3, and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: CSC301H, (CSCC40H3), (CSCD08H3)
Breadth Requirements: Quantitative Reasoning
Course Experience: University-Based Experience

CSCC09H3 - Programming on the Web

An introduction to software development on the web. Concepts underlying the development of programs that operate on the web. Operational concepts of the internet and the web, static and dynamic client content, dynamically served content, n-tiered architectures, web development processes and security on the web.

Prerequisite: CSCB09H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Corequisite: CSCC43H3
Exclusion: CSC309H
Breadth Requirements: Quantitative Reasoning
Course Experience: University-Based Experience

CSCC10H3 - Human-Computer Interaction

The course will provide an introduction to the field of Human-Computer Interaction (HCI) with emphasis on guidelines, principles, methodologies, and tools and techniques for analyzing, designing and evaluating user interfaces. Subsequent topics include usability assessment of interactive systems, prototyping tools, information search and visualization, mobile devices, social media and social networking, and accessibility factors.

Prerequisite: CSCB07H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: CCT380H, CSC318H
Breadth Requirements: Quantitative Reasoning

CSCC11H3 - Introduction to Machine Learning and Data Mining

An introduction to methods for automated learning of relationships on the basis of empirical data. Classification and regression using nearest neighbour methods, decision trees, linear and non-linear models, class-conditional models, neural networks, and Bayesian methods. Clustering algorithms and dimensionality reduction. Model selection. Problems of over-fitting and assessing accuracy. Problems with handling large databases.

Prerequisite: MATB24H3 and MATB41H3 and STAB52H3 and [CGPA of at least 3.5 or enrolment in a CSC Subject POSt or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement].
Exclusion: CSC411H, (CSCD11H3)
Recommended Preparation: CSCC37H3
Breadth Requirements: Quantitative Reasoning

CSCC24H3 - Principles of Programming Languages

Major topics in the design, definition, analysis, and implementation of modern programming languages. Study of programming paradigms: procedural (e.g., C, Java, Python), functional (e.g., Scheme, ML, Haskell) and logic programming (e.g., Prolog, Mercury).

Prerequisite: CSCB07H3 and CSCB09H3 and CSCB36H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: CSC324H
Breadth Requirements: Quantitative Reasoning

CSCC37H3 - Introduction to Numerical Algorithms for Computational Mathematics

An introduction to computational methods for solving problems in linear algebra, non-linear equations, approximation and integration. Floating-point arithmetic; numerical algorithms; application of numerical software packages.

Prerequisite: MATA22H3 and [MATA36H3 or MATA37H3] and [CGPA of at least 3.5 or enrolment in a CSC Subject POSt or enrolment in a non-CSC Subject POst for which this specific course is a program requirement]
Exclusion: (CSCC36H3), (CSCC50H3), (CSCC51H3), CSC336H, CSC350H, CSC351H, CSC338H
Breadth Requirements: Quantitative Reasoning

CSCC43H3 - Introduction to Databases

Introduction to database management systems. The relational data model. Relational algebra. Querying and updating databases: the SQL query language. Application programming with SQL. Integrity constraints, normal forms, and database design. Elements of database system technology: query processing, transaction management.

Prerequisite: CSCB09H3 and CSCB63H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: CSC343H
Breadth Requirements: Quantitative Reasoning

CSCC46H3 - Social and Information Networks

How networks underlie the social, technological, and natural worlds, with an emphasis on developing intuitions for broadly applicable concepts in network analysis. Topics include: introductions to graph theory, network concepts, and game theory; social networks; information networks; the aggregate behaviour of markets and crowds; network dynamics; information diffusion; popular concepts such as "six degrees of separation", the "friendship paradox", and the "wisdom of crowds".

Prerequisite: CSCB63H3 and STAB52H3 and [MATA22H3 or MATA23H3] and [a CGPA of 3.5 or enrolment in a CSC Subject POSt]
Breadth Requirements: Quantitative Reasoning

CSCC63H3 - Computability and Computational Complexity

Introduction to the theory of computability: Turing machines, Church's thesis, computable and non-computable functions, recursive and recursively enumerable sets, reducibility. Introduction to complexity theory: models of computation, P, NP, polynomial time reducibility, NP-completeness, further topics in complexity theory.
Note: Although the courses CSCC63H3 and CSCC73H3 may be taken in any order, it is recommended that CSCC73H3 be taken first.

Prerequisite: CSCB36H3 and CSCB63H3 and [CGPA of at least 3.5, or enrolment in a CSC Subject POSt, or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]]
Exclusion: CSC363H, CSC365H, CSC364H
Breadth Requirements: Quantitative Reasoning

CSCC69H3 - Operating Systems

Principles of operating systems. The operating system as a control program and as a resource allocator. The concept of a process and concurrency problem: synchronization, mutual exclusion, deadlock. Additional topics include memory management, file systems, process scheduling, threads, and protection.

Prerequisite: CSCB07H3 and CSCB09H3 and CSCB58H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: CSC369H
Breadth Requirements: Quantitative Reasoning

CSCC73H3 - Algorithm Design and Analysis

Standard algorithm design techniques: divide-and-conquer, greedy strategies, dynamic programming, linear programming, randomization, and possibly others.

Prerequisite: CSCB63H3 and STAB52H3 and [CGPA of at least 3.5 or enrolment in a CSC Subject POSt or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: CSC373H, CSC375H, CSC364H
Breadth Requirements: Quantitative Reasoning

CSCC85H3 - Fundamentals of Robotics and Automated Systems

The course introduces the fundamental principles, problems, and techniques involved in the operation of mobile robots and other automated systems. Course topics include: components of automated systems, sensors and sensor management, signal acquisition and noise reduction, principles of robot localization, FSM-based A.I. for planning, fault-tolerance and building fault-tolerant systems, real-time operation and real-time operating systems; and computational considerations such as hardware limitations and code optimization. Ethical considerations in the implementation and deployment of automated systems are discussed. The concepts covered in the course are put in practice via projects developed on a Lego robotic platform.

Prerequisite: CSCB58H3 and CSCB09H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: ECE385H
Recommended Preparation: CSCB07H3
Breadth Requirements: Quantitative Reasoning

CSCD01H3 - Engineering Large Software Systems

An introduction to the theory and practice of large-scale software system design, development, and deployment. Project management; advanced UML; requirements engineering; verification and validation; software architecture; performance modeling and analysis; formal methods in software engineering.

Prerequisite: CSCC01H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: CSC302H, (CSCD08H3)
Breadth Requirements: Quantitative Reasoning
Course Experience: University-Based Experience

CSCD03H3 - Social Impact of Information Technology

The trade-offs between benefits and risks to society of information systems, and related issues in ethics and public policy. Topics will include safety-critical software; invasion of privacy; computer-based crime; the social effects of an always-online life; and professional ethics in the software industry. There will be an emphasis on current events relating to these topics.

Prerequisite: 14.0 credits and enrolment in a Computer Science Subject POSt. Restricted to students in the Specialist/Specialist Co-op programs in Computer Science or in the Specialist/Specialist Co-op programs in Management and Information Technology
Exclusion: CSC300H
Breadth Requirements: Social and Behavioural Sciences
Course Experience: University-Based Experience

CSCD18H3 - Computer Graphics

The course will cover in detail the principles and algorithms used to generate high-quality, computer generated images for fields as diverse as scientific data visualization, modeling, computer aided design, human computer interaction, special effects, and video games. Topics covered include image formation, cameras and lenses, object models, object manipulation, transformations, illumination, appearance modeling, and advanced rendering via ray-tracing and path-tracing. Throughout the course, students will implement a working rendering engine in a suitable programming language.

Prerequisite: MATB24H3 and MATB41H3 and [CSCB09H3 or proficiency in C] and CSCC37H3 and [a CGPA of at least 3.5 or enrolment in a Computer Science Subject POSt]
Exclusion: (CSC418H1)/CSC317H1
Breadth Requirements: Quantitative Reasoning

CSCD21H3 - Blockchains and Decentralized Applications

The course is meant to expose students to Web3 by covering the technical aspects of blockchain technologies and smart contracts. The course will have three learning outcomes. First, the students will learn how to build blockchains based on different consensus. Secondly, they will learn how to develop decentralized applications using smart contracts. Finally, they will learn about the current challenges of blockchain technologies such as scalability, interoperability and privacy.

Prerequisite: CSCC09H3
Breadth Requirements: Quantitative Reasoning

CSCD25H3 - Advanced Data Science

This course teaches the basic techniques, methodologies, and ways of thinking underlying the application of data science and machine learning to real-world problems. Students will go through the entire process going from raw data to meaningful conclusions, including data wrangling and cleaning, data analysis and interpretation, data visualization, and the proper reporting of results. Special emphasis will be placed on ethical questions and implications in the use of AI and data. Topics include data pre-processing, web scraping, applying supervised and unsupervised machine learning methods, treating text as data, A/B testing and experimentation, and data visualization.

Prerequisite: CSCB63H3 and CSCC11H3 and [a CGPA of 3.5 or enrolment in a CSC Subject POSt]
Breadth Requirements: Quantitative Reasoning

CSCD27H3 - Computer and Network Security

Public and symmetric key algorithms and their application; key management and certification; authentication protocols; digital signatures and data integrity; secure network and application protocols; application, system and network attacks and defences; intrusion detection and prevention; social engineering attacks; risk assessment and management.

Prerequisite: CSCB09H3 and CSCB36H3 and CSCB58H3 and [CGPA of at least 3.5 or enrolment in a CSC Subject POSt]
Exclusion: CSC427H
Recommended Preparation: CSCC69H3
Breadth Requirements: Quantitative Reasoning
Course Experience: University-Based Experience

CSCD37H3 - Analysis of Numerical Algorithms for Computational Mathematics

Most mathematical models of real systems cannot be solved analytically and the solution of these models must be approximated by numerical algorithms. The efficiency, accuracy and reliability of numerical algorithms for several classes of models will be considered. In particular, models involving least squares, non-linear equations, optimization, quadrature, and systems of ordinary differential equations will be studied.

Prerequisite: CSCC37H3 and MATB24H3 and MATB41H3 and [CGPA of at least 3.5 or enrolment in a CSC Subject POSt or enrolment in a non-CSC Subject POSt for which this specific course is a program requirement]
Exclusion: (CSCC50H3), (CSCC51H3), CSC350H, CSC351H
Breadth Requirements: Quantitative Reasoning

CSCD43H3 - Database System Technology

Implementation of database management systems. Storage management, indexing, query processing, concurrency control, transaction management. Database systems on parallel and distributed architectures. Modern database applications: data mining, data warehousing, OLAP, data on the web. Object-oriented and object-relational databases.

Prerequisite: CSCC43H3 and CSCC69H3 and CSCC73H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: CSC443H
Breadth Requirements: Quantitative Reasoning

CSCD54H3 - Technology Innovation and Entrepreneurship

This course examines high-Tech innovation and entrepreneurship, principles of operation of successful high-tech enterprises, customer identification and validation, product development, business models, lean startup techniques, and financing of high-technology ventures. Students will work in teams to develop their own innovative product idea, and will produce a sound business plan to support their product.

Prerequisite: A minimum of 2.5 credits at the B-level or higher in CSC courses
Corequisite: CSCD90H3
Exclusion: CSC454H
Breadth Requirements: Social and Behavioural Sciences
Note: Restricted to students in the Entrepreneurship stream of the Specialist/Specialist Co-op programs in Computer Science. If space permits, students in other streams of the Specialist/Specialist Co-op programs in Computer Science may be admitted to the course, with the permission of the instructor.

CSCD58H3 - Computer Networks

Computer communication network principles and practice. The OSI protocol-layer model; Internet application layer and naming; transport layer and congestion avoidance; network layer and routing; link layer with local area networks, connection-oriented protocols and error detection and recovery; multimedia networking with quality of service and multicasting. Principles in the context of the working-code model implemented in the Internet.

Prerequisite: CSCB58H3 and CSCB63H3 and STAB52H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Exclusion: CSC458H
Breadth Requirements: Quantitative Reasoning

CSCD70H3 - Compiler Optimization

The goal of this course is to examine the design and implementation of a compiler optimized for modern parallel architectures. Students will learn about common optimizations, intermediate representations (IRs), control-flow and dataflow analysis, dependence graphs, instruction scheduling, and register allocation. Advanced topics include static single assignment, memory hierarchy optimizations and parallelization, compiling for multicore machines, memory dependence analysis, automatic vectorization/thread extraction, and predicated/speculative execution.

Prerequisite: CSCB63H3 and CSCC69H3 and [CGPA 3.5 or enrolment in a CSC Subject POSt]
Breadth Requirements: Quantitative Reasoning

CSCD71H3 - Topics in Computer Science

A topic from computer science, selected by the instructor, will be covered.
The exact topic will typically change from year to year.

Prerequisite: Permission of the instructor and [CGPA 3.5 or enrolment in a CSC Subject POSt]. Normally intended for students who have completed at least 8 credits.

CSCD72H3 - Topics in the Theory of Computing

A topic from theoretical computer science, selected by the instructor, will be covered.
The exact topic will typically change from year to year.

Prerequisite: Permission of the instructor and [CGPA 3.5 or enrolment in a CSC Subject POSt]. Normally intended for students who have completed at least 8 credits.

CSCD84H3 - Artificial Intelligence

A study of the theories and algorithms of Artificial Intelligence. Topics include a subset of: search, game playing, logical representations and reasoning, planning, natural language processing, reasoning and decision making with uncertainty, computational perception, robotics, and applications of Artificial Intelligence. Assignments provide practical experience of the core topics.

Prerequisite: STAB52H3 and CSCB63H3 and [a CGPA of 3.5 or enrolment in a CSC subject POSt]
Exclusion: CSC484H, CSC384H
Breadth Requirements: Quantitative Reasoning

CSCD90H3 - The Startup Sandbox

In this capstone course, students will work in teams to develop a viable product prototype following the methodologies and techniques covered in CSCD54H3. Students will produce written reports, short videos pitching their idea, and a final presentation showcasing their proposed innovation, as it would be pitched to potential investors. The course instructor and TAs will provide close supervision and mentorship throughout the project.

Prerequisite: A minimum of 2.5 credits at the B-level or higher in CSC courses
Corequisite: CSCD54H3
Breadth Requirements: Quantitative Reasoning
Course Experience: University-Based Experience
Note: Restricted to students in the Entrepreneurship stream of the Specialist/Specialist Co-op programs in Computer Science. If space permits, students in other streams of the Specialist/Specialist Co-op programs in Computer Science may be admitted to the course, with the permission of the instructor.

CSCD92H3 - Readings in Computer Science

Students will examine an area of interest through reading papers and texts. This course is offered by arrangement with a computer science faculty member. It may be taken in any session, and must be completed by the last day of classes in the session in which it is taken.

Prerequisite: Students must obtain consent from the Supervisor of Studies before registering for this course.
Breadth Requirements: Quantitative Reasoning
Note: UTSC students interested in Computer Science reading or project courses must enroll using the following course codes: CSCD92H3, CSCD94H3 or CSCD95H3, regardless of whether these courses are instructed by faculty from UTSC, UTSG, or UTM.

CSCD94H3 - Computer Science Project

A significant project in any area of computer science. The project may be undertaken individually or in small groups. This course is offered by arrangement with a computer science faculty member, at U of T Scarborough or the St. George campus. This course may be taken in any session and the project must be completed by the last day of classes in the session in which it is taken. Students must obtain consent from the Supervisor of Studies before registering for this course.

Prerequisite: [Three C-level CSC courses] and [permission of the Supervisor of Studies] and [CGPA 3.0 or enrolment in a CSC Subject POSt]
Enrolment procedures: Project supervisor's note of agreement must be presented to the Supervisor of Studies, who must issue permission for registration.

Exclusion: CSC494H
Breadth Requirements: Quantitative Reasoning
Note: UTSC students interested in Computer Science reading or project courses must enroll using the following course codes: CSCD92H3, CSCD94H3 or CSCD95H3, regardless of whether these courses are instructed by faculty from UTSC, UTSG, or UTM.

CSCD95H3 - Computer Science Project

Same description as CSCD94H3. Normally a student may not take two project half-courses on closely related topics or with the same supervisor.
If an exception is made allowing a second project on a topic closely related to the topic of an earlier project, higher standards will be applied in judging it. We expect that a student with the experience of a first project completed will be able to perform almost at the level of a graduate student.

Prerequisite: CSCD94H3 Enrolment procedures: Project supervisor's note of agreement must be presented to the Supervisor of Studies, who must issue permission for registration.
Exclusion: CSC495H
Breadth Requirements: Quantitative Reasoning
Note: UTSC students interested in Computer Science reading or project courses must enroll using the following course codes: CSCD92H3, CSCD94H3 or CSCD95H3, regardless of whether these courses are instructed by faculty from UTSC, UTSG, or UTM.

Printer-friendly Version